package com.jidong.test_springboot.dao;

import java.util.Set;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.jidong.test_springboot.entity.User;
import com.jidong.test_springboot.entity.UserWithDept;


@Mapper
public interface UserDao extends BaseMapper<User>{
	
	/*自定义一个方法，根据用户名查出所有的权限 这是一个多表联查**/
	public Set<String> selectPermissionByUname(@Param("uname")String uname);
	
	/*自顶一个方法，根据用户名查出所有的角色 这是一个多表联查 **/
	public Set<String> selectRoleByUname(@Param("uname")String uname);
	
	/**
	 *不配置page属性的时候，mybatisplus就不分页 
	 * 当我们配置了page参数以后，mybatisplus 分页插件会自动加载 
	 * 同理不配置QueryWrapper mybatisplus就是不按条件查询
	 * 当我们配置QueryWrapper mybatisplus会自动加载条件
	 *  */
	public IPage<UserWithDept> selectUserList(IPage<UserWithDept> page,@Param(Constants.WRAPPER)QueryWrapper<UserWithDept> query);
	/**自定义一个方法，返回所有的按钮权限和列权限 （目前用于列权限过滤）**/
	public Set<String> selectAllPermissions();
}
